چطوری میشه

رنگ های سلولی جدول سفارشی در پنل مدیریت وردپرس

رنگ های سلولی جدول سفارشی در پنل مدیریت وردپرس

همیشه فکر می‌کردم که بتوان ردیف‌های رنگ پس‌زمینه پست‌ها را با توجه به معیارهای مختلف در مدیریت وردپرس تغییر داد، جالب است. بنابراین، من به اطراف نگاه کردم و چند آموزش برای انجام آن پیدا کردم. اما نکته بد این است که هر آموزش کد یکسانی داشت، احتمالاً یک کپی و پیست ساده. و علاوه بر این، پس از چند آزمایش، دیدم که تمام این پست ها ناقص است. به همین دلیل است که تصمیم گرفتم کمی عمیق تر به توضیح نحوه اضافه کردن رنگ های پس زمینه خاص به ردیف پست ها بپردازم. و برای انجام این کار، ما قصد داریم یک افزونه جدید ایجاد کنیم!

مرحله 1: افزونه

بسیار خوب، پس شروع کنید، ما باید یک افزونه ایجاد کنیم، همانطور که در پست های قبلی من دیدیم، این ساده ترین بخش است. یک پوشه جدید در wp-content/plugins ایجاد کنید و نام آن را “color-my-posts” بگذارید. در داخل آن، یک فایل جدید ایجاد کنید و آن را فراخوانی کنید. “color-my-posts.php” (لطفاً فکر نکنید تخیلی ندارم!). این فایل را باز کنید و این کد را اضافه کنید:

کاری که این کار انجام می دهد این است که به سادگی به وردپرس می گوید که یک افزونه جدید به نام “Color My Posts” در داخل پوشه افزونه های آن وجود دارد. حالا افزونه شما، حتی اگر خالی باشد، باید در فهرست افزونه‌ها در منوی «افزونه‌ها» فهرست شود. در مرحله بعد می خواهیم یک کلاس ساده برای نمونه سازی افزونه ایجاد کنیم.

مرحله 2: کلاس اصلی

همانطور که در آموزش من یک کلاس در مورد افزودن ویژگی های سفارشی به منوهای وردپرس ایجاد کردیم، باید همین کار را انجام دهیم و برای ایجاد یک کلاس، در اینجا نحوه انجام آن آمده است:

class rc_color_my_posts {

	/*-------------------------------------------*
	 * سازنده
	 *-------------------------------------------*/

	/**
	 * پلاگین را راه اندازی می کند
	 */
	تابع __construct() {

		add_action('admin_footer', array( &$this,'rc_color_my_admin_posts') );

	} // سازنده پایان

	تابع rc_color_my_admin_posts(){
		/* صبور باش ! */
	}

}

// کلاس پلاگین instantiate
$GLOBALS['color_my_posts'] = new rc_color_my_posts();

در اینجا ما یک کلاس به نام “rc_color_my_posts” ایجاد می کنیم که حاوی یک سازنده و تابعی به نام rc_color_my_admin_posts (). در سازنده، تابع rc_color_my_admin_posts() را به admin_footer متصل می‌کنیم. این بدان معنی است که عملکرد ما در حین بارگیری فوتر مدیریت در نظر گرفته می شود. اکنون تنها کاری که باید انجام دهیم این است که کد CSS را به تابع خود اضافه کنیم. این کد مستقیماً در کد منبع صفحات مدیریت وردپرس چاپ می شود.

مرحله 3: استایل دادن به پست ها

همان‌طور که قبلاً گفتم، تمام آموزش‌هایی که درباره استایل کردن ردیف پست در مدیریت وردپرس دیدم صحبت می‌کنند، ما فقط با وضعیت پست سروکار داریم. این درست است، شما می توانید پست ها را ردیف به وضعیت پست استایل دهید، اما نه تنها. برای کسانی که به آن علاقه دارند، تابعی به نام get_post_class() در /wp فایل اصلی -includes/post-template.php. فقط در مورد – کد این فایل را تغییر ندهید (حداقل و نه در حال حاضر)!

خب این تابع get_post_class() عالی است زیرا مسئول تعیین یک کلاس پست است. این تابع در مدیریت و در قسمت جلویی استفاده می شود. در اینجا نحوه اضافه کردن کد CSS سفارشی برای هر کلاس ایجاد شده توسط get_post_class آمده است:

function rc_color_my_admin_posts(){
 ?>
 <سبک>
 /* رنگ بر اساس وضعیت پست */
 .status-draft { پس زمینه: #ffffe0 !important;}
 .status-future { پس زمینه: #E9F2D3 !important;}
 .status-publish {}
 .status-pending { پس زمینه: #D3E4ED !important;}
 .status-private { background: #FFECE6 !important;}
 .post-password-required { background: #ff9894 !important;}
/* رنگ بر اساس داده های نویسنده */
 نویسنده-خود {}
 .author-other {}
/* رنگ بر اساس فرمت پست */
 .format-aside {}
 .format-gallery {}
 .format-link {}
 .format-image {}
 .format-quote {}
 .format-status {}
 .format-video {}
 .format-audio {}
 .format-chat {}
 .format-standard {}
/* رنگ بر اساس دسته پست (تغییر وبلاگ بر اساس دسته راب) */
 .category-blog {}
/* رنگ بر اساس نوع پست سفارشی (تغییر xxxxx با نوع پست سفارشی Slug) */
 .xxxxx {}
 .type-xxxxx {}
/* رنگ بر اساس شناسه پست (تغییر xxxxx با شناسه پست) */
 .post-xxxxx {}
/* رنگ بر اساس برچسب پست (تغییر xxxxx توسط راب تگ) */
 .tag-xxxxx {}
/* سازگاری با hAtom رنگ */
 .hentry {}

 

از آنجایی که این کد پیچیده نیست، نظراتی را در خود کد اضافه کردم. بنابراین اساساً برای استایل دادن به ردیف ها بر اساس:

  • وضعیت پست، از .status-xxx استفاده کنید که در آن xxx وضعیت پست است
  • نویسنده، از .author-self برای هدف قرار دادن پست هایی که نوشته اید و .author-other برای پست های نوشته شده توسط نویسندگان دیگر استفاده کنید
  • قالب پست، از .format-xxx استفاده کنید که xxx قالب پست است
  • دسته پست، از .category-xxx استفاده کنید که در آن xxx اسلاگ دسته است، می توانید هر تعداد دسته را که می خواهید هدف قرار دهید
  • نوع پست، از xxx. یا .type-xxx که xxx اسلاگ نوع پست است استفاده کنید، می توانید هر تعداد CPT را که می خواهید هدف قرار دهید
  • شناسه پست، از .post-xxx استفاده کنید که xxx شناسه پست است، می‌توانید هر تعداد پست را که می‌خواهید هدف قرار دهید
  • پست برچسب، از .tag-xxx استفاده کنید، جایی که xxx تگ اسلاگ است، می توانید هر تعداد تگ را که می خواهید هدف قرار دهید
  • .hentry برای هدف قرار دادن انطباق hAtom
  • استفاده می شود

من برای همه کلاس‌ها رنگ تنظیم نکرده‌ام، اما می‌توانید خودتان این کار را انجام دهید و افزونه را سفارشی کنید تا شبیه آنچه واقعاً می‌خواهید به نظر برسد.

در مورد پست های چسبنده چه می شود؟

وقتی روی این افزونه کوچک کار می کردم متوجه شدم که هیچ کلاسی به پست های چسبنده اضافه نشده است. خوب، حداقل در مدیریت. بنابراین دوباره به فایل post-template.php رفتم و دیدم که یک کلاس .sticky به پست چسبنده اضافه شده است، اما فقط اگر is_home() && !is_paged()… چرا؟ این واقعاً عجیب است. به همین دلیل است که من یک بلیط در مسیر اصلی وردپرس ایجاد کردم تا ذکر شود. آی تی. برای کسانی که واقعاً می خواهند بتوانند به پست های چسبنده در ادمین استایل بدهند، به سادگی این کد را به تابع get_post_class() اضافه کنید، حتی اگر توصیه می کنم هرگز فایل های اصلی وردپرس را تغییر ندهید:

// چسبنده برای پست‌های چسبنده در مدیریت
if ( is_sticky($post->ID) && is_admin() )
$classes[] = 'post-sticky';

افزونه را دانلود کنید

برای کسانی که می‌خواهند از افزونه مستقیماً بدون نیاز به ایجاد آن توسط خود استفاده کنند، من افزونه را به مخزن اضافه کردم، به سادگی برای دانلود اینجا را کلیک کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا